package com.zykj.observer.weather;

import com.zykj.observer.Observer;
import com.zykj.observer.Subject;

import java.util.ArrayList;
import java.util.List;

/**
 * @author zhoulj(周利军) [1217102780@qq.com]
 * @Title: WeatherData
 * @Project: ${MODEL_NAME}
 * @Module ID:   <(模块)类编号，可以引用系统设计中的类编号>
 * @Comments: <对此类的描述，可以引用系统设计中的描述>
 * @JDK version used:      <JDK1.8> 43
 * @since 2018/12/26-11:43
 */
public class WeatherData implements Subject {
    private List<Observer> observers = new ArrayList<>();
    float shudu; float wendu; float pressure;

    @Override
    public void registerObserver(Observer o) {
        observers.add(o);
    }

    @Override
    public void removeObserver(Observer o) {
        observers.remove(o);
    }

    @Override
    public void notifyObservers() {
        //TODO 这里存在一定的缺陷： 假如调用某个观察者 update方法异常了  所有观察者都会受影响
        for (Observer observer : observers) {
            observer.update(shudu,wendu,pressure);
        }
    }


    public void setData(float shudu, float wendu, float pressure){
        this.shudu=shudu;
        this.wendu=wendu;
        this.pressure=pressure;
        // 这里和原书不一样  直接调用的
        notifyObservers();
    }
}
